#!/bin/bash

# DevOps SmartBot 停止脚本
# 用途: 停止所有运行的服务

set -e

echo "🛑 DevOps SmartBot - Shutdown Script"
echo "====================================="

# 颜色定义
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color

PROJECT_ROOT="/Users/harry./Desktop/devopsSmartBot"

# Step 1: 停止前端服务
echo -e "\n${YELLOW}[1/3] 停止前端服务...${NC}"
if [ -f /tmp/frontend.pid ]; then
    FRONTEND_PID=$(cat /tmp/frontend.pid)
    if ps -p $FRONTEND_PID > /dev/null 2>&1; then
        kill $FRONTEND_PID
        echo -e "${GREEN}✓ 前端服务已停止 (PID: $FRONTEND_PID)${NC}"
    else
        echo -e "${YELLOW}⚠ 前端服务未运行${NC}"
    fi
    rm /tmp/frontend.pid
else
    echo -e "${YELLOW}⚠ 找不到前端PID文件${NC}"
fi

# Step 2: 停止后端服务
echo -e "\n${YELLOW}[2/3] 停止后端服务...${NC}"
if [ -f /tmp/backend.pid ]; then
    BACKEND_PID=$(cat /tmp/backend.pid)
    if ps -p $BACKEND_PID > /dev/null 2>&1; then
        kill $BACKEND_PID
        echo -e "${GREEN}✓ 后端服务已停止 (PID: $BACKEND_PID)${NC}"
    else
        echo -e "${YELLOW}⚠ 后端服务未运行${NC}"
    fi
    rm /tmp/backend.pid
else
    echo -e "${YELLOW}⚠ 找不到后端PID文件${NC}"
fi

# Step 3: 停止Docker容器
echo -e "\n${YELLOW}[3/3] 停止Docker容器...${NC}"
cd "$PROJECT_ROOT"
docker-compose down

echo -e "\n${GREEN}========================================${NC}"
echo -e "${GREEN}✅ 所有服务已停止${NC}"
echo -e "${GREEN}========================================${NC}"

# 清理日志 (可选)
read -p "是否清理日志文件? (y/N) " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
    rm -f /tmp/backend.log /tmp/frontend.log
    echo -e "${GREEN}✓ 日志文件已清理${NC}"
fi
